package com.kgc.basicprovider.service;

import com.kgc.basic.util.ResponseMsg;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;


public interface ImportExportService {

    /**
     * 导入 Excel 数据
     *
     * @param file        上传的 Excel 文件
     * @param entityClass 实体类类型（如 Customer.class）
     * @param uniqueField 唯一字段名，用于校验唯一性（如 "code"）
     *                    //     * @param mapper      具体的 Mapper 实例（如 CustomerMapper 或 ProviderMapper）
     * @return ResponseMsg 包含操作结果
     */
    ResponseMsg importEntities(MultipartFile file, Class<?> entityClass, String uniqueField, String flag);

    /**
     * 导出数据到 Excel
     *
     * @param map         查询参数（包括分页参数）
     * @param entityClass 实体类类型
     * @param orderBy     排序字段（如 "create_date desc"）
     *                    //     * @param mapper      具体的 Mapper 实例
     * @return ResponseMsg 包含导出的 Base64 编码数据
     */
    ResponseMsg exportEntities(Map<String, Object> map, Class<?> entityClass, String orderBy);

    /**
     * 下载 Excel 模板
     *
     * @param entityClass 实体类类型
     * @return ResponseMsg 包含模板的 Base64 编码数据
     */
    ResponseMsg downloadTemplate(Class<?> entityClass);

    //打印pdf
    ResponseMsg printEntitiesToPDF(Map<String, Object> map, Class<?> entityClass, String orderBy);
}
